package com.itheima.project.service;

import com.itheima.project.exception.ProjectException;
import org.elasticsearch.search.builder.SearchSourceBuilder;

/**
 * es中索引库的操作方法
 */
public interface IndexService {
    /**
     * 根据es注解配置  创建索引库
     * @param tclass
     * @return
     */
    void createIndex(Class<?> tclass) throws ProjectException;

    /**
     * 根据es json参数  创建索引库
     * @param source
     * @param indexName
     * @return
     */
    void createIndex(String source,String indexName) throws ProjectException;

    /**
     * 查询指定索引库是否存在
     * @param tclass  相关实体类 根据EsIndex注解的值创建
     * @return
     */
    boolean existIndex(Class<?> tclass) throws ProjectException;

    /**
     * 查询指定索引库是否存在
     * @param indexName  索引库名称
     * @return
     */
    boolean existIndex(String indexName) throws ProjectException;

    /**
     * 删除索引库
     * @param indexName 索引库名称
     * @return
     */
    void deleteIndex(String indexName) throws ProjectException;

    /**
     * 删除索引库
     * @param tclass
     * @return
     */
    void deleteIndex(Class<?> tclass) throws ProjectException;

}
